Capture Data

Log into the robot with X-Forwarding, and start the data capture application

ssh prx -X
robot start
roslaunch pr2_calibration_launch capture_data.launch

If your robot has a kinect/xtion mounted on its head, you also need to launch the node for that:

roslaunch /etc/ros/openni_head.launch

Note: The texture projector must be off for data capture to work!

This will start all the processing nodes, along with the data capture executive. It will also open 8 image_view windows. Each provides the state of the checkerboard detector for each stream. Each currently active sensor must consistently detect the checkerboard in order for the executive to capture a sample.

Follow the command line prompts to go through the calibration.

Understanding the sensors streams

Once you start capture_data.launch, 8 image_view windows will open and will look like the following (although not as neatly arranged):

http://www.ros.org/wiki/pr2_calibration/SubTutorials/Capture Data?action=AttachFile&do=get&target=gui_start.png

Notice that both forearm camera streams have been grayed out. Once the executive activates these streams later in the capture process, you will begin to see data from these cameras.

Checkerboard Detector

There is an openCV checkerboard detector running on each sensor stream. The result of the detector is shown as circles in each image frame (see image below). A successful detection is signified by a green circle at every corner, along with a red circle at one corner. Partial failures show red circles, while complete failures show no circles at all.

http://www.ros.org/wiki/pr2_calibration/SubTutorials/Capture Data?action=AttachFile&do=get&target=cb_detect_fail.png

Capturing Large Checkerboards

During this phase, the application will prompt you to place a large checkerboard in view of all the head cameras and tilting laser. After positioning the board in a good location, press <enter> to begin capture. The app will either detect the checkerboard, or timeout in 40 seconds.

It is suggested that you collect 4 large checkerboards, each about 2 to 3 meters away from the robot. If you are feeling ambitious, you can collect 3 more checkerboards (left, centered and right) that are 1.5 to 2 meters from the robot.

Note: The checkerboard on the floor can often be very tricky to capture, due to glare from overhead lighting. If this sample is causing trouble, feel free to skip it.

http://www.ros.org/wiki/pr2_calibration/SubTutorials/Capture Data?action=AttachFile&do=get&target=calibration.png

Teleop Joystick

Both stereo pairs (along with the tilting laser) must detect the large checkerboard in order to successfully capture a sample. Thus, you will definitely have to move the head around in order the see the checkerboard.

The teleop joystick already comes up with the capture_data app. Thus, you can use the joystick to move the head around as needed (and base around as needed)

Understanding the Tilting Laser Intensity Images

For each scan, the tilting laser provides both range and intensity data along a horizontal line. We then stack intensity data from successive together, creating the image. Note that the Hokuyo UTM-30lx scans from right to left, resulting in the intensity image being flipped horizontally.

Specular Reflections

Placing the large checkerboard close to orthogonal to the laser ray will result in very bright specular reflections. This can be solved by turning the checkerboard until there is no bright spot in the intensity image.

http://www.ros.org/wiki/pr2_calibration/SubTutorials/Capture Data?action=AttachFile&do=get&target=specular.png

Finish collecting Large Checkerboards

Once you've collected enough large checkerboards, press "N" at the prompt to continue. Don't forget to remove the large checkerboard from the robot's view, as it might mess up the next step in the calibration.

Capturing Left Hand Checkerboard

You should now see the left arm move in view of the head cameras. Place the 5x4 checkerboard in the left gripper. In order to ensure that the checkerboard doesn't move during the calibration procedure. The gripper pads should completely contact the non-slip tape on the checkerboard plate (see image below). You can use the joystick to close the gripper. The left D-pad button on the joystick will close the gripper while the the right D-pad button on the joystick will open the gripper.

Also, make sure to hide the large checkerboard from the view of the robot, since it can confuse the checkerboard detector.

Press <enter> once the checkerboard is securely held in the left gripper.

http://www.ros.org/wiki/pr2_calibration/SubTutorials/Capture Data?action=AttachFile&do=get&target=hand_cb.png

WARNING: Once the checkerboard is firmly grasped by the gripper and robot has started collecting data, DO NOT DISTURB THE GRASP. The calibration procedure estimates the offset from the gripper to the CB, and assumes a constant grasp throughout the calibration procedure. If the checkerboard hits anything, the grasp can change, and the calibration data capture must be restarted.

Capturing Right Hand Checkerboard

Move the checkerboard from the left hand to the right. Press <enter> once it is securely held in the right gripper.

Cleanup

You will see a message at the console once the execute has completed. Remove the checkerboard from the gripper.

Wiki: pr2_calibration/SubTutorials/Capture Data (last edited 2013-02-07 00:26:54 by jbinney)